home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 32 / Mac Magazin and MacEasy Magazine CD - Issue 32.iso / Multimedia / MIDI / MidiChaos_15 Folder / MidiChaos_1.5 / README < prev   
Text File  |  1996-11-17  |  10KB  |  226 lines

  1. About MidiChaos- 
  2.     Shareware by Darren Gibbs 
  3.     P.O. Box 9343
  4.     Oakland, CA  94613 
  5.     darren@tetraktys.com
  6.  
  7. OVERVIEW:
  8.  
  9. MidiChaos is an application/utility/game/composition tool
  10. conceived by Peter Randlette and I in 1989 at The Evergreen State
  11. College in Olympia, Washington.  It is implemented in HMSL (a
  12. Forth based composition language developed here at the Mills
  13. College Center for Contemporary Music) and since its primitive
  14. beginnings  has evolved, with help from Phil Burk, into a fairly
  15. interesting bit of software.  Basically, it allows one to map the
  16. output from chaotic equations to the Midi parameters of pitch,
  17. velocity, and duration. 
  18.  
  19. Exciting features:
  20.     - Easy To Use Graphical interface
  21.     - Up to four (depending on the speed of your CPU) 
  22.        simultaneous"voices" 
  23.     - Four equations to choose from for added hours of enjoyment 
  24.        and/or torture of your pets, neighbors, and loved ones
  25.     - Standard Midifile support so you can load your funky output
  26.        into sequencers and notation software
  27.     - Preset system for real-time interactive noodling as well as the
  28.        ability to group, save, and reload "banks" of related behaviors 
  29.     - Source code included for HMSL users and the curious
  30.  
  31. Two graphical control screens are used to operate MidiChaos. 
  32. With the default screen you can turn voices on and off, change
  33. midi channels, assign an equation to a Midi parameter, tweak the
  34. equations, force output into specific ranges, and turn midifile
  35. recording on and off.  The preset screen, accessable with the
  36. screens menu or with the indicated command-key combinations,
  37. allows you to save configurations of the main screen into preset
  38. banks that can be stored on disk.  By the way, pulling down the
  39. menu while MidiChaos is running will suspend output until you let
  40. go, so using the command keys is the better choice.  Also, most
  41. of the menu bars pertain to HMSL operation and are disabled for
  42. this turnkey application in case you were wondering.
  43.  
  44.  
  45. REQUIREMENTS:
  46.  
  47. - A Macintosh or PowerMac
  48.  
  49.     On a 68040 machine, caches must be OFF!
  50.  
  51. - Apple's MIDI Manager
  52.  
  53. This is included. To install, put the MidiMangler into the
  54. Extensions folder, the Apple Midi Driver and Patchbay Help files
  55. into your System Folder, then put Patchbay wherever is
  56. convienient (probably the Apple Menu) and reboot. 
  57.  
  58. - MIDI Interface
  59.  
  60.     MidiChaos is configured to use the Modem Port.
  61.    
  62. WARNINGS:
  63.  
  64.     Inits may cause problems.  The After Dark screen saver will
  65.     definately not work with MidiChaos (or HMSL) due to its impolite
  66.     allocation of Timer1. 
  67.  
  68.     MidiChaos works on any Mac but the large number of floating point
  69.     calculations involved make machines without an FPU grind to a
  70.     sickly crawl pretty quickly if you get into high speed or
  71.     multi-voice behaviors.
  72.  
  73. BEGINNING TUTORIAL:
  74.  
  75. Make sure you're properly connected to a MIDI synth of some sort.
  76. Choose a patch for channel 1 with a short attack and decay.
  77.  
  78. Double-click the MidiChaos app to begin.  The first thing you 
  79. see should be the main screen with several faders and buttons.
  80. Click the "on" button next to the list of voices.  You should
  81. hear a pattern of notes slowly converge until reaching a steady
  82. state repeating tone. If nothing happens check MIDI connections,
  83. channel assignments, etc.  
  84.  
  85. What you're hearing is the output of an equation I called "Trig"
  86. which looks like this: x' = p1 sin(pi * x).  This equation is
  87. iterated (as are the others) i.e. a starting value is chosen for x,
  88. then the result (x') is put back in and the equation re-evaluated
  89. over and over.  Each result - for these equations it will always
  90. be between zero and one - is then scaled linearly to a value
  91. between whatever range you select with the faders on the far
  92. right of the screen.  The default range for note values is 0-127,
  93. the range of valid MIDI notes.  If you drag the scaling faders
  94. around you will hear the pitch move as well. The equation is
  95. still cranking out the same number over and over, but you are
  96. changing the range that the value is scaled to.  This can be
  97. useful if you want to force the output of one voice into a
  98. specific register
  99.  
  100. When you are bored with the scaling faders, return them to the
  101. default 0-127 range and then click the "Duration" button.  You
  102. will notice that the faders blinked and the titles over the
  103. scaling faders have changed. What has happened is that the faders
  104. have been re-assigned to affect duration rather than pitch.  This
  105. can be very confusing until you get used to it.  The controls are
  106. somewhat "soft" and act on different things depending which
  107. controls have been selected.  The heirarchy moves sort of from
  108. left to right: first select a voice, then which Midi parameter
  109. you want to work with, then which equation will drive that
  110. parameter, and finally the values for the equation itself.
  111.  
  112. Next, grab the "Max Duration" fader and move it to somewhere
  113. between 25 and 30.  This is the simplest way to control the
  114. overall speed of a voice's output.  Now click on the "Note"
  115. button again.  Notice that the faders remembered where you left
  116. them.  All of the controls behave this way except the "x" fader
  117. which we'll get to in a second and the special case of switching
  118. equations.  If your Midi instrument is velocity sensitive, click
  119. on the "Velocity" button and move the Max velocity fader down a
  120. bit.  As with duration, this is a quick way to do primitive
  121. mixing.  Now click back and forth between the "Note", "Velocity",
  122. and "Duration" buttons a bit, tweak the scaling values and get
  123. used to how all of this works.
  124.  
  125. If you haven't gone insane yet, move the note range back to 0-127
  126. again and the duration range to 0-20 or so.  Click the "Note"
  127. button, then grab the "x" fader and move it slightly, let go and
  128. listen.  Incedentally, you can click on the spaces above and
  129. below the fader knobs for fine tuning.  The "X" fader pokes it's
  130. current value into the equation (replaces the current x), thus
  131. destabilizing the equation.  What you hear is the equation
  132. falling back into stability.  A point "attractor".  A lot of
  133. interesting converging patterns can be made this way.  Try a
  134. bunch of different x values, especially very low and very high
  135. ones.  Try doing the same thing with the velocity and duration
  136. equations.  Some of the patterns are very long so be patient.
  137.  
  138. When you're done, go back to the note parameter and move the "P1"
  139. fader up a few points.  At about 72 the pitches will start
  140. oscillating. Depending on the value of "P1" (and "P2" which only
  141. works with the Insect equation) the value of x will change.  As
  142. you increase "P1" through 82-85 (slowly!) you will begin to hear
  143. a series of bifurcations (read your dynamical systems theory for
  144. more on what that means to the mathematically inclined) then the
  145. output will become chaotic.  This is the really interesting thing
  146. about the equations and the reason for making MidiChaos in the
  147. first place. The value of x will always be between zero and one,
  148. the pattern won't be random, and if I understand the theory
  149. correctly, it will never repeat exactly.  Instant chaotic melody
  150. generator!  At first it will probably sound non-sensical, but if
  151. you listen for awhile, you'll start to recoginze pattern
  152. tendencies for different values of "P1".
  153.  
  154. So, there you go, that's the basic stuff of MidiChaos.  Try
  155. hooking it up to a drum box and use the scaling fader to tune the
  156. output to the note range of your box.  MidiChaos can even swing
  157. if you find the right parameter settings.  Try some of the other
  158. equations.  Each time you switch, "P" and "X" will be reset to
  159. nominal values, but only the "P" faders will move to reflect the
  160. new values.  The "X" fader will stay where it was.   Try
  161. assigning different equations to each Midi parameter.  Some of
  162. the equations attract to zero so if the output gets stuck, jiggle
  163. the "X" fader.  The insect equation is very strange and has a
  164. complex phase space so don't worry if you get lost.  It varies
  165. widely and there are places where you may not hear anything, or
  166. it might get stuck on some wild value.  The other voices operate
  167. identically; all of the controls will apply to whichever voice is
  168. currently selected.  Change Midi channels by clicking in the
  169. upper or lower portion of the "Chan. #" box or by dragging up and
  170. down.
  171.  
  172. MIDIFILE OUTPUT:
  173.  
  174. Clicking "Start" under "Midi Record" will pause output, prompt
  175. you to type in a file name, and then begin keeping a copy of all
  176. Midi messages in a RAM buffer.  When you click "Stop", output
  177. will pause again, and the file will be written.  Beware of
  178. filling up the buffer.  MidiChaos will dynamically allocate
  179. memory until you run out so the size of the buffer depends on
  180. your machine.
  181.  
  182. PRESET SYSTEM:
  183.  
  184. When you get an interesting behavior going, switch screens and
  185. hit "Save".  This will store the complete state of all four
  186. voices.  Save a few others in this way and then experiment with
  187. the controls.  First, Last, Next, and Previous are pretty
  188. self-explanatory.  Load, Insert, and Delete work by selecting the
  189. number of the preset you want (just like Chan. #) and then
  190. clicking the appropriate button.  Save and Load Bank will prompt
  191. for a file and then do it.  A bank has no fixed size so Last will
  192. tell you how many you have.  The maximum number of presets in one
  193. bank is 100.
  194.  
  195. SOURCE CODE:
  196.  
  197. If you have a modern version of HMSL (4.09 or higher), you can
  198. probably get MidiChaos loaded and running.  Look in MidiChaosMain
  199. for the assign and include commands.
  200.  
  201. When you've got the code compiled, type MC.INIT and then HMSL. 
  202. Don't forget MC.TERM when you are done. It's not the most heavily
  203. commented code in the world but it will show you what I did, and
  204. has quite a few involved and (slightly) flashy HMSL tricks
  205. lurking around for the stout of heart.
  206.  
  207. READING:
  208.  
  209. Try James Gleick's Chaos  for basic layperson's description of
  210. dynamical systems and related topics.
  211.  
  212. SHAREWARE:
  213.  
  214. Though I certainly didn't do this project primarily for the cash,
  215. if you're one of the strange few who find MidiChaos useful and/or
  216. amusing, I certainly wouldn't mind finding a few bucks in the
  217. mail at some point.  I've been working on it for quite a while,
  218. and especially for less experienced HMSL programmers, it can be
  219. educational.
  220.  
  221. Thank You, Good Luck, Be Careful, Have Fun
  222.  
  223. darren gibbs
  224.  
  225. (updated and released 11/17/96)
  226.